package test;

import test.ArrayInitParser.InitContext;
import test.ArrayInitParser.ValueContext;

/**
 * 将类似{1,2,3}的short数组初始化语句翻译成"\u0001\u0002\u0003"
 * @author zwd
 *
 */
public class ShortToUnicodeString extends ArrayInitBaseListener{
	
	/**
	 * 将{ 翻译成"
	 */
	@Override
	public void enterInit(InitContext ctx) {
		System.out.println('"');
	}

	/**
	 * 将} 翻译成 "
	 */
	@Override
	public void exitInit(InitContext ctx) {
		System.out.println('"');
	}
	
	/**
	 * 将每个整数翻译为四位的十六进制形式，然后加前缀 
	 */
	@Override
	public void enterValue(ValueContext ctx) {
		//假定不存在嵌套结构
		int value = Integer.valueOf(ctx.INT().getText());
		System.out.printf("\\u%04x",value);
	}
	
}
